package com.win.config;

import com.win.pojo.Dog;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;

import java.util.Set;

//代表这是一个配置类
@Configuration

//@ComponentScan({"com.win.controller", "com.win.service","com.win.dao"}) //开启扫描包
//@Import(MyConfig.class) //导入合并其他配置类，类似于配置文件中的 inculde 标签
public class MyConfig {

    // 相当于配置文件中 <property name="name" value="winner"/>
    // 可以不用提供set方法，直接在直接名上添加@value("值")
    // @Value("winner")
    public String name;

    // 如果提供了set方法，在set方法上添加@value("值");
    // 如果 name 和 setName 都添加了@Value 则走 Set 方法
    @Value("winner")
    public void setName(String name) {
        this.name = name;
    }

    //通过方法注册一个bean，这里的返回值就Bean的类型，方法名就是bean的id！
    // 相当于配置文件中 <bean id="dog" class="当前注解的类"/>
    @Bean
    public Dog dog() {
        return new Dog();
    }
}